home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / systems / minix / review.jrb < prev    next >
Text File  |  1995-11-25  |  8KB  |  152 lines

  1. A quick review of ST Minix (v 1.2 i guess):
  2.  
  3. Publisher:   Prentice Hall
  4. Order #:     0-13-584391
  5. Manual ISBN: 0-13-584434-7
  6. Price (US) : $79.95 + shipping
  7. Authors    : Andrew Tanenbaum  Johan Stevenson  Jost Muller
  8.  
  9. Distribution: 9 single sided 3 1/2" floppies + 70 page manual. The
  10. OS book by Andrew Tanenbaum is not included in the above package.
  11. If you are knowledgable about Unix, the book is not required to run/use
  12. Minix, but in my opinion even if you are, the book is still very worth
  13. buying. Highly recommended reading.
  14.  
  15. Hardware Required: Minix will run on almost any ST/MegaST
  16. configuration.  Single/Double sided floppies, hard disk (you need a
  17. atari sh204/212 hard disk, more on this later).  The console driver
  18. supports both mono (25 and 50 lines) and color monitors. There is
  19. support for various national keyboard types (via an utility). As
  20. distributed, it is configured for a minimal ST (1 single sided drive,
  21. 512K memory, any monitor). There is adequate documentation in the
  22. manual on how to reconfigure for the various hardware configurations.
  23. The built in clock on the megaSt is supported.
  24.  
  25. Software Supplied: Comes with complete source and binaries as
  26. described in the Minix book. Also included is a C compiler, libraries
  27. etc. The source for the C compiler is not included, the library source
  28. is all there.  Left as an excercise for the reader are drivers for the
  29. serial port, midi, and cart. ports. The distribution includes drivers
  30. for floppy, hard disk, keyboard, screen and printer, all with source. I
  31. have begun writing a serial driver, and it looks like its going to be
  32. do-able.
  33.  
  34. Installation: The instructions in the manual are more than adequate to
  35. install Minix on any configuration. The installation went very
  36. smoothly on all the configurations i tried. One small point in the
  37. installation instructions. The instructions seem to use the word
  38. `sector' to mean `block' when referring to the third parameter of
  39. `mkfs' in the instructions for setting up hard disks. The useage is
  40. correct for floppies, but not hard disks in my mind. This caused me a
  41. little grief because i was not thinking and blindly following the
  42. instructions, but no big deal.
  43.  
  44. Experience: For some of us old hands from the PDP V6/V7 era, this is
  45. almost like deja vu. It smells like, it feels like a Pdp v6/v7 unix
  46. system but with the additional benefit of having a large linear address
  47. space thrown in. Minix will use as much memory as you have. The root
  48. file system is loaded into ram disk (which thereafter becomes the root
  49. partition) from floppy/hard disk on startup. The size of the ram disk
  50. is determined by the size of the partition it is initialized from, so
  51. its totally flexible.  The minimum size is around 140K, a very
  52. workable size i have found to be 256K, and if you have the luxury of
  53. globs of memory, you can make it as large as you want. The hard disk
  54. support allows you to use any partition(s) on any drive(s) for minix
  55. file system(s), so it co-exists with TOS partitions quite nicely. The
  56. hard disk driver supports multiple drives too. Utilities are provided
  57. to read/write/list directories from/to TOS partitions on hard disks or
  58. a floppy. The differences between the Ibm Pc and ST versions are
  59. adequately documented. There is an interesting chapter in the manual
  60. about the ST implementation, especially the bit about implementing
  61. fork()/exec() semantics on a 68K. There is also adequate documentation
  62. in the manual for recompiling Minix itself on various hardware
  63. configurations and also on recompiling the stuff using the Alcyon
  64. compiler. The only place where the documentation is really weak is on
  65. details of the C compiler, libraries and associated utilities. Except
  66. for the C compiler details, i will not complain too strongly because
  67. the source for the libraries and associated utilities are in the
  68. distribution, and i have a unix system right next to the St to do a
  69. man anytime i want. The C compiler seems to be quite stable, though
  70. the code produced is nothing to write home about. My biggest gripe
  71. would be that it uses 6 passes to produce an executable (cpp/parser,
  72. optimizer, code generator, assembler, linker and load format
  73. converter). An interesting project would be to combine atleast the
  74. linker and the converter, and maybe the optimizer and the code gen.
  75. Unfortunately the sources for these are not supplied. Performance
  76. wise, Minix is no speed daemon, nor is it intended to be. But the
  77. source is "with you", and that leads to some interesting
  78. possibilities...  (i wish i did'nt have a thesis to do :-)
  79.  
  80. More experience: In my way of looking at things, to really get some
  81. experience, you got to roll up the sleeves and get your fingers dirty.
  82. So i set out to port MicroGnuEmacs (mg V2a). I am happy to report that
  83. it is up and running under Minix, with all the facilities like Dired,
  84. regex, forking shell etc etc. I also went into the Minix archives at
  85. bugs.nosc.mil and pulled down some upgrades and utilities. So far i
  86. have the following:
  87.  
  88.     df/mount/umount - enhanced to store the state in /etc/mtab,
  89.                   df reports bsd style sizes in K bytes or
  90.               the traditional i-node style
  91.     ed        - i had to have this to start  me up, mined
  92.               was driving me up the wall. Now that mg2a is
  93.               up i don'nt really need it.
  94.     ls        - enhanced ls, does columns, puts * and /'s etc
  95.     make            - pd make (from the same original source as the
  96.               TOS make that we posted the diffs for). The
  97.               supplied Make is a little strange.
  98.     mg        - MicroGnu emacs V2a
  99.     more        - enhanced more (pager)
  100.     sh        - the sh as distributed by ast for v1.3 of minix
  101.  
  102. Be my guest and grab any of this stuff via anonymous FTP from
  103. dsrgsun.ces.cwru.edu (129.22.16.2) from the directory ~ftp/pub/minix.
  104. A note about the Mg port: I have'nt worked in the keybinding stuff for
  105. special keys (function, arrows) as yet, but i will be doing so. So you
  106. may or may not want to grab Mg just yet.
  107.  
  108. More on Hard Disks:
  109. The supplied hard disk driver works fine with an atari SH204/212 hard
  110. disk and the atari supplied HDX. I also tried with a Supra 20M. It almost
  111. works, "close but no cigar". It gets some DMA interrupt which it does'nt
  112. like, and it even manages to do a mkfs, copy files etc, but you keep
  113. getting spurious interrupt messages, and finally the kernel panics -
  114. el crashola. So quite obviously only a small fix is need somewhere in
  115. the hard disk driver code, and since Supra also supplies the source to
  116. its Dma functions, it seems like it should be do-able to put 2 and 2
  117. together.
  118.  
  119. A few random notes:
  120.     - always #define ATARI_ST when including stuff from the system
  121.       include directory, otherwise it leads to errors.
  122.     - use chmem on cem and cv for even medium size progs.
  123.     - the document suggests that you create a 512K ram disk on a 
  124.       1 Meg ST. This is nice because you have a large /tmp and also
  125.       have space to shove a few passes on the C compiler into /lib,
  126.       but it creates problems when you have say mg running from a
  127.       shell, and you try to fork(). The fork() fails always due to
  128.       lack of memory. I set up my root in a 256K ram disk, that gives
  129.       me enough space in /tmp to do most compiles. I only had to
  130.       cc -T/usr/tmp to link Mg.
  131.     - The docs say that minix will use hard disk partitions larger than
  132.       TOS's max of 16M. Using the atari HDX util, it will not let
  133.       you create partitions > 15.9M (why atari does this BS is
  134.       beyond me). Using the Supra utilities you can create
  135.       partitions > 16M, but for some reason (that i have'nt looked
  136.       into as yet) mkfs fails when you specify > 16K blocks (or it
  137.       could very well be that i did something wrong). Everything
  138.       works just fine for partitions < 16M (even with the Supra utils).
  139.     - I am having the hardest time trying to make a chmem'ed cem to
  140.       run from Make. I guess the work around is to exec cc or maybe
  141.       the passes themselves instead of doing a exec sh -c.
  142.  
  143. Coming up:
  144.     - Fix up Mg fully (special key support)
  145.     - serial driver
  146.     - i am working on Prabhaker to bring up Gulam. Send him fan mail!!
  147.  
  148. I guess thats it for now, after about a day and a half with minix.
  149.  
  150.     Congratulations are certainly in order to the authors.
  151.             THANK YOU ast, johan and jost.
  152.